package br.com.Bolao.application.controller.ajuda;

import br.com.Bolao.application.controller.BaseController;
import br.com.Bolao.application.dao.usuarios.UsuarioDAO;
import br.com.Bolao.application.util.mail.Email;
import br.com.Bolao.application.util.mail.EmailUtils;
import br.com.Bolao.model.Usuario;
import java.util.List;
import javax.mail.MessagingException;
import org.apache.commons.lang.StringUtils;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

/**
 * Controller da página APOSTAS.XHTML
 * @author frederico.cruz
 */
@Scope(ScopeType.CONVERSATION)
@Name("faleConoscoAction")
public class FaleConoscoController extends BaseController {

    private Email email;
    @In
    private UsuarioDAO usuarioDAO;

    public FaleConoscoController() {
        email = new Email();
    }

    public String setup(String login) {
        if (!StringUtils.isEmpty(login)) {
            Usuario usuario = usuarioDAO.obterPorUsuario(login);
            email.setParamEmail(usuario.getEmail());
        }
        return "faleconosco";
    }

    public void enviarEmail() throws MessagingException {

        EmailUtils emailUtils = new EmailUtils();
        try {
            String mensagem = "A pessoa " + email.getParamNome() + " - " + email.getParamEmail() + " enviou a seguinte mensagem: ";
            mensagem += email.getParamMensagem();
            emailUtils.enviaEmail(null, "mucceli@gmail.com", email.getParamAssunto(), mensagem);
            email = new Email();
            adicionarMensagemInformacao("E-mail enviado com sucesso");
        } catch (Exception ex) {
            adicionarMensagemErro("Não foi possível enviar os e-mails " + ex.getMessage());
        }
    }

    public void enviarEmailMassa() throws MessagingException {
        EmailUtils emailUtils = new EmailUtils();
        List<Usuario> listaUsuarios = usuarioDAO.obterTodos();
        try {
            for (Usuario usuario : listaUsuarios) {
                emailUtils.enviaEmail(null, usuario.getEmail(), email.getParamAssunto(), email.getParamMensagem());
            }
            email = new Email();
            adicionarMensagemInformacao("Mensagem em massa enviada com sucesso");
        } catch (Exception ex) {
            adicionarMensagemErro("Não foi possível enviar os e-mails " + ex.getMessage());
        }
    }

    public Email getEmail() {
        return email;
    }

    public void setEmail(Email email) {
        this.email = email;
    }
}
